<template>
    <el-form-item >
            <el-select placeholder="Select" v-model="modelValue" style="width: 240px" >
                <el-option v-for="item in StatusData" :key="item.code" :label="item.message" :value="item.code" />
            </el-select>
        </el-form-item>

</template>
<script setup lang="ts">
  import { ref ,onMounted } from 'vue'
  import { enumApi} from '@/api'
  const enumName =defineModel("enumName")
  const modelValue =defineModel("modelValue")
  const StatusData=ref<any>([])
  const isAll0=defineModel('isAll0',{default:false})

/**
 * 调用枚举API以获取数据
 * 此函数负责调用后端API获取枚举数据，并根据特定条件添加'全部'选项
 * 最后，它将更新状态数据和模型值
 */
const callEnumApi = () => {
  // 调用枚举API的select方法，传递枚举名称作为参数
  enumApi.select.call({ enumName: enumName.value }).then((res: any) => {
    // 如果全局变量isAll0为真，则在响应数据中添加一个代码为'0'、消息为'全部'的对象
    if (isAll0.value) {
      res = [{ code: '0', message: '全部' }].concat(res)
    }
    // 更新状态数据，使其反映从API获取的最新数据
    StatusData.value = res
    // 设置模型值为响应数据中第一个项目的代码
    modelValue.value = res[0].code
  })
}

onMounted(() => {
    callEnumApi()
})

</script>